package a0.commonAPI.Math.MatchUtils;

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class MathUtils {
    /**
     * 作业：
     * 两个double类型的数据的 +*-/ 运算 并返回double数据类型（3位小数,四舍五入）
     * <p>
     * 两个float类型的数据的 +*-/ 运算 并返回float数据类型（2位小数，向下取整）
     */

    public static Double dAdd(double x, double y) {

        BigDecimal a = new BigDecimal(String.valueOf(x));
        BigDecimal b = new BigDecimal(String.valueOf(y));

        BigDecimal add = a.add(b);
        BigDecimal bigDecimal = add.setScale(3, BigDecimal.ROUND_HALF_UP);
        double v = bigDecimal.doubleValue();

        return a.add(b).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();

    }


    public static Double dSubtract(double x, double y) {

        BigDecimal a = new BigDecimal(String.valueOf(x));
        BigDecimal b = new BigDecimal(String.valueOf(y));
        return a.subtract(b).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();

    }

    public static Double dMultiply(double x, double y) {

        BigDecimal a = new BigDecimal(String.valueOf(x));
        BigDecimal b = new BigDecimal(String.valueOf(y));
        return a.multiply(b).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();

    }

    public static Double dDivide(double x, double y) {

        BigDecimal a = new BigDecimal(String.valueOf(x));
        BigDecimal b = new BigDecimal(String.valueOf(y));
        return a.divide(b, 3, BigDecimal.ROUND_HALF_UP).doubleValue();

    }


    //编写方法 生成 0.00% ~ 60.00% 的字符串

    /**
     * 简化
     * 1.  0.00 ~ 60.00
     * 1.  0 ~ 60
     */

    // [0,1)      [0,60]
    // [0,1) * 60  [1,61)
    public static String str() {
        double a = (Math.random()) * 0.6;

        double b = (Math.random()) * 0.6;

        if (dSubtract(50, b) == 0.0) {
            return "60.00%";
        } else {
            return new DecimalFormat("#.##%").format(a);
        }


    }


    //编写方法 传入的整型参数 （m,n） 生成 [m.00% ~ n+m.00% ) 的字符串

}
